home *** CD-ROM | disk | FTP | other *** search
- MUSIC MODULE COMPRESSOR
- version 1.20
-
- User's Manual
-
-
- Table of contents:
-
- 1. Introduction
- 2. Information on MMCMP:
- 2.1. Requirements
- 2.2. Files in this packages
- 2.3. Features of this version
- 3. Usage:
- 3.1. Compressing modules
- 3.2. Uncompressing modules
- 3.3. Using MMTSR <-- read this!!!
- 3.4. Technical Stuff about MMTSR
- 4. Some legal stuff...
- 5. Closing words
- 6. Contacting the author
-
- <See MMUPDATE.DOC fow latest implementations!>
-
-
- 1. Introduction
-
- As music modules are constantly growing larger and larger, it becomes
- interesting to compress those modules to save space on disk.
- However, files compressed using "standard" compression utility may be
- played by only a few players and can't usually be loaded into a
- conventionnal tracker for editing and composing. But now, MMCMP
- offer you the possibility to do so.
-
- MMCMP is a conventionnal compression utility that will compress music
- modules, giving approximatively the same ratio you could expect with
- any popular compression utility. It is not some kind of special sound
- compression like MPEG2, for example, which may give a very gound
- compression ratio, but modifies the data and tends to lower sound
- quality. MMCMP does not modify the original sound data, and
- decompressing a compressed module (using MMUNCMP) gives back the
- original module.
-
- What's special with MMCMP is the small TSR (Terminate and Stay
- Resident) utility (MMTSR.EXE) which, once loaded, decompresses in
- "background" compressed modules when they are loaded by "ANY" player
- or tracker. So you DON'T NEED TO DECOMPRESS MODULES TO PLAY THEM BACK!
- However, due to technical reasons, MMTSR can't compress module when,
- within a tracker, you save them back on your disk. You'll have to do
- this "manually" with MMCMP.
-
- Fortunately, this shall be soon possible, as I'm currently working
- with Jeffrey Lim, the author of *Impulse Tracker*, so that IT will
- include compression/decompression routines. A few trackers already
- used some kind of sample compression, but as far that I know, this
- shall be the first tracker (I guess) with such a reasonable
- compression (ratio approximatively equal to ZIP, ARJ, LZH, etc.. and
- twice or thrice faster!)
-
-
-
- 2. Information on MMCMP
-
- 2.1. Requirements:
-
- - A 80386 based or better computer (does anybody still have something
- worse????)
- - around 350k of free conventionnal memory
- - 100k of free exTended memory (for MMTSR only)
- - some free space on your drive C: (for MMTSR only) to uncompress a
- module (the size of a module is needed...)
-
- These requirements may change with future version of the program.
- See the "Features" section down here and the MMUPDATE.DOC file.
-
- 2.2. Files in this package:
-
- You should have all the following files:
-
- MMCMP.EXE The compression utility
- MMUNCMP.EXE The decompression utility
- MMTSR.EXE The TSR version of MMUNCMP
- MMCMP.DOC This file...
- MMUPDATE.DOC Information on previous, current and future releases
- FILE_ID.DIZ Small description for BBS
-
- If you wish to distribute MMCMP, see the legal stuff below.
-
- 2.3. Features of this version:
-
- MMCMP can actually compress module of the following formats and
- supports everything supported by the specified tracker version:
- - S3M: Scream Tracker 3 module (ST3 version 3.21)
- (adlib samples not supported (who cares...) but MMCMP supports
- 16 bits samples even if ST3 doesn't)
- - IT: Impulse Tracker module (IT version 1.04)
- - XM: Extended Module (Fast Tracker 2.05)
-
- These are the trackers with which MMCMP has been tested. Of course,
- MMCMP might work correctly with module made from newer versions of
- those trackers as long as modules don't hold newly implemented
- features, and it is possible that MMCMP may not handle correctly what
- was said to be "currently unsupported" by those trackers.
-
- Actually, MMCMP supports only 8/16 bits mono compression. This doesn't
- mean much though, because data like patterns, which aren't samples, are
- compressed too. It only means that, for example, stereo samples will
- soon have their own compression scheme so they can be compressed much
- better. However, among currently supported module formats, none of
- their respective trackers actually support stereo samples, so stereo
- support won't be implementedd until it has to...
-
-
-
- 3. Usage:
-
- 3.1. Compressing Modules:
-
- To compress a module, simply type at the prompt:
-
- MMCMP modulename [modulename] [modulename]...
-
- "modulename" may include a drive letter, a full path, as well as '*'
- and '?' wildcards. You may also specify more than one modulename.
- The file extension must be specified. Omitting modulname will show
- this command line syntax.
-
- *IMPORTANT NOTE:*
-
- =>> MMCMP WILL REPLACE THE ORIGINAL MODULE with the compressed one unless
- an error occured during the process. The new file will then have the
- same name, date and time, than the original one. If an error occured
- while compressing, the module will remain unchanged. If your module
- is "read only", MMCMP won't be able to replace it and will save the
- compressed module in a temporary file, giving you the name of this
- file.
-
- 3.2. Uncompressing Modules:
-
- To uncompress a module, type at the prompt:
-
- MMUNCMP modulename [modulename] [...]
-
- The syntax follows the same rules than for MMCMP, explained above.
- Note that MMUNCMP, like MMCMP will replace the compressed module by
- the uncompressed one. It will also behave like MMCMP if an error
- occurs.
-
- 3.3. Using MMTSR:
-
- MMTSR is loaded by typing "MMTSR" at the prompt. It will allocate
- 101k of extended memory (expanded is not supported yet) and take 3.2k
- of conventionnal memory for itself. Load it "high" if you can, by
- typing "lh mmstr" at the prompt, so it doesn't use "low" memory used
- by most applications. Once it is resident in memory, it will
- systematically decompress any file it detects as compressed modules.
- Technically speaking, every file BEGINNING with the "ziRCONia"
- signature WILL be decompressed.
-
- NOTE:
- MMTSR CAN'T be unloaded from memory (unless you reboot your system of
- course...), but can be enabled/disabled anytime if you think it
- interfere with something else in your system. To desactivate MMTSR,
- simply type "mmtsr off" and to reactivate it, type "mmtsr on" at the
- command prompt.
-
- When decompressing a module, MMTSR opens a tempory file in the root
- directory of drive C: (C:\_~zirc~_.tmp, but this shall be configurable
- in future versiona of MMTSR) This means that it will most probably
- don't work correctly if some program opens more than one compressed
- module at once. Of course, a player may load more than one module into
- memory, as long as a compressed module is not opened before the
- previous one is closed first. Usually, trackers and players don't
- open more than one module at once.
-
- Furthermore, since every compressed file is decompressed when it is
- opened, program that scan every modules to get their name, info, etc,
- will be consequently slowed down during scanning. If music is
- playing while a file is decompress, some weird things might occur
- with the playback, only during decompression, depending on the
- player/tracker you are using. But don't worry, it shouldn't hurt ;)
- This is only due to the way the computer processes "background
- events", i.e, most of the time, decompressing file in "background"
- and playing music in background can't be done at the same time.
- Under certain circumstances, MMTSR let the music playback continue
- normally, but sometimes playback is slowed down, or paused. This
- really depends on your player or tracker.
-
-
- IMPORTANT:
-
- MMTSR works for READ ONLY decompressing, i.e. any program, player,
- tracker, may read any compressed module, but attempting to write into
- a compressed module WHILE it is STILL open will return an error to
- the program that attempted to write, like if it was a read only
- file. This prevents corruption of the compressed module since the
- player/tracker sees the module file as a non-compressed file.
- However, since players don't write into modules and trackers usually
- rewrite the whole module, there won't be any problem.
-
- Frthermore, using MMTSR to load modules which have been compressed
- using a newer version of MMCMP (with new compression scheme, i.e only
- adding new module format or that sort of thing doesn't change
- anything here) might crash your computer. It doesn't do anything
- bad, but you'll have to reboot your system. It might also not crash,
- instead it will only load data in a wrong manner, and results are
- much unpredictable (for example, a sample could sound like garbage).
- But if you don't save and overwrite your module after it has been
- altered in some ways, DATA CAN'T BE MODIFIED and will remain like it
- was before. Simply use MMUNCMP to decompress it correctly.
-
- This is all because MMTSR, being resident in memory and working in
- "background", can't interact with the user if something is wrong.
- Thus, to keep MMTSR as small as possible so it doesn't take too much
- memory, no check or verification is done for newly implemented
- features, not supported by the current verion of MMTSR. Consequently,
- you should always use the latest version of MMTSR you own.
-
- A lot of work has to be done around MMTSR to improve it, and a setup
- utility will probably be released soon to let the user configure
- MMTSR (temporary file path, extended/expanded memory support,
- etc..) Check the file MMUPDATE.DOC.
-
- 3.4. Technical stuff ahout MMTSR:
-
- - MMTSR intercepts the "open file" and "close file" functions of
- INT 21h.
- - To check if MMTSR is installed, call INT 21h with AX=4370h. If
- MMTSR is not installed, this funciton will probably not be supported
- and CF will be set. But if MMTSR is installed, CF will be cleared,
- and EAX=4352697Ah ('ziRC').
- - MMTSR may be disabled by calling INT 21h with AX=4372h
- - Call INT 21h with AX=4371h to reenable it.
- - Both 4371h and 4372h functions will return with CF cleared and
- EAX=4352697Ah if MMTSR is loaded.
-
-
- 4. Some legal stuff:
-
- I CAN'T BE HELD RESPONSIBLE FOR ANYTHING THAT COULD HAPPEN TO YOU, YOUR
- MACHINE, OR WHOEVER OR WHATEVER, RESULTING FROM ANY USE OF THIS SOFTWARE. BY
- USING THIS SOFTWARE, YOU ARE AUTOMATICALLY ACCEPTING THIS, AS WELL AS THE
- FOLLOWING PARAGRAPH:
-
- YOU MAY NOT MODIFY ANY PART OF THIS SOFTWARE, NOR YOU MAY ADD OR REMOVE
- ANYTHING TO OR FROM ANY OF ITS FILES. IF YOU'RE NOT A DISTRIBUTOR, YOU MAY
- HOWEVER FREELY DISTRIBUTE AND COPY IT, AS LONG AS EVERY FILES ARE PACKAGED OR
- ARCHIVED TOGETHER AND NO FILE IS MODIFIED OR REMOVED. YOU MAY ARCHIVE OTHER
- FILES WITH THIS SOFTWARE FOR ADVERTISING PURPOSE ONLY, BUT THIS SOFTWARE MUST
- NOT BE INVOLVED IN ANY WAYS IN THIS ADVERTISING NOR RELATED TO ANY OTHER
- PRODUCT. YOU MAY NOT CHARGE ANYTHING FOR THIS SOFTWARE OR PARTS OF IT.
- DISTRIBUTORS WHO ARE INTERESTED IN THIS SOFTWARE OR ANYBODY ELSE WHO WISHES TO
- MAKE COMMERCIAL USE OF IT OR PARTS OF IT MUST GET MY WRITTEN CONSENT FIRST.
-
- If you wish to copy it, please archive or compress files under the
- following filename:
- MMCMPxyy.eee
-
- Where 'x' and 'yy' are the version number (x.yy). For Beta releases,
- replace the last 'y' by a 'b'. 'eee' is simply the extension added by
- the archiver. Since there's some work being done between Jeffrey Lim,
- the author of Impulse Tracker, and me, you may also distribute MMCMP
- files along with Impulse Tracker.
-
-
-
- 5. Closing words:
-
- This is one of the first official release of MMCMP, and I'm sorry if
- this doc contains errors or some information is missing... please
- contact me if you wish to notify anyhting about it.
-
- I personnaly conceive the compression algorithm two or three years
- ago, and after having written from scratch three very different
- versions of my program (the third is the good one) here it is! But I
- haven't been really alone, I'd like to thank:
-
- Jeffrey Lim: For spending a lot of time trying to fix bugs in his
- tracker, while bugs were within my program, (dear
- MMTSR...;]) Also helped me to spread my program all over
- the world by putting my program along with his tracker
- (*Impulse Tracker* of course...) Also did beta testing.
- Thanks a lot!
-
- Beta Testers: Nicolas Szapiel (Moonbeam / )
- Nicolas Roberge (Populous / )
- Samuel Cote (Balrog / KFMF)
- Dominic (Mammouth)
-
- And anyone else who uses my program, and all those who are sending me
- comments, info, questions, bugs reports (...shouldn't happen ;]) !!
-
- Furthermore, if you find my utility VERY convenient, and you think
- that it worth something (well... anything), maybe you could send me
- that 'something' ;) Seriously, MMCMP is NOT a very big utility and I
- "don't" ask anything for it. I've spent many many many hours to
- conceive, code and debug this utility, and I'm still working on it...
- but this is FREEware meant to please the whole planet! However if you
- feel happy and generous, follow your feelings! And if people around
- you feel the same way, get together to form an happy and generous
- group! I know an university student who works hard to pay his school
- fees that would be very happy to receive a little something in a
- little envelope in his little snail-mail box :-) I will also write
- your name/nick or whatever you want (simply specify it) into a "very
- kind people" list! So... open your mind, feel the generous person
- within you, and... ;)
-
- As I said in the intro, my compression algorithm shall be soon
- integrated to Impulse Tracker, so watch this out!!! and read the
- MMUPDATE.DOC file!!
-
-
- 6. Contacting the author
-
- If you wish to ask or report something, or for any comment, contact
- me...
-
- ... via e-mail:
- giassone@ift.ulaval.ca
- OR Emmanuel.Giasson@ift.ulaval.ca (same thing...)
-
- Subject: MMCMP (or whatever else you want...)
-
- (I shall have this mail account up to april '98, and maybe
- more...)
-
- ... via snail mail:
- Emmanuel Giasson
- 158, rue Gariepy
- St-Redempteur, Quebec
- G6K 1M5
- Canada
-
- (this shall also still be good for a couple of years...)
-
- ... via IRC ;)
- though this 'may' not be very serious, if you happen to be on
- the same 'IRC net' (try irc.polymtl.ca or irc.magic.ca, and
- many others around the world), look for 'Zirconia', often on
- channel #quebec (well, as for now...). Try between 7pm and
- 2am, Eastern North American time (-6h00 GMT)
-
- If you are reporting me bugs, please, try to be as explicit as
- possible! If you wish to use my compression algorithm, ask me first,
- but if you only want to get the algoritmh to decompress data (well,
- this may seems to be the same thing, but in fact, this is much
- simpler) you may ask me (because I haven't yet included it along with
- the software) or wait until it is integrated to IT. The decompression
- algorithm shall be there for anybody (i.e. players/trackers
- programmers) who might like to add support for compressed IT modules.
-
-
- DON'T FORGET TO LOOK THE MMUPDATE.DOC FILE!!!!!
-
- Enjoy!
-
- Emmanuel Giasson a/s Zirconia
-
-